<?php

/**
 * Torneo form.
 *
 * @package    ehockey
 * @subpackage form
 * @author     Your name here
 * @version    SVN: $Id: sfDoctrineFormTemplate.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class TorneoForm extends BaseTorneoForm
{
	public function configure()
	{
		unset($this->widgetSchema['estado']);
		for ($i = 1; $i <= Torneo::CANTIDAD_DE_EQUIPOS; $i++){
			unset($this->widgetSchema[sprintf('equipo%d_puntos', $i)]);
			unset($this->widgetSchema[sprintf('equipo%d_partidos_ganados', $i)]);
			unset($this->widgetSchema[sprintf('equipo%d_partidos_empatados', $i)]);
			unset($this->widgetSchema[sprintf('equipo%d_partidos_perdidos', $i)]);
			unset($this->widgetSchema[sprintf('equipo%d_goles_a_favor', $i)]);
			unset($this->widgetSchema[sprintf('equipo%d_goles_en_contra', $i)]);
		}
		
		$culture = sfContext::getInstance()->getUser()->getCulture();
		$years = range(2010, 2100);
		$date_config = array('years' => array_combine($years, $years), 'culture' => $culture);
		$this->widgetSchema['fecha_inicio'] = new sfWidgetFormJQueryDate(array('date_widget' => new sfWidgetFormI18nDate($date_config, array('class' => 'date')), 'culture' => $culture));
		$this->validatorSchema['fecha_inicio'] = new sfValidatorDate(array('min' => time(), 'date_format_range_error' => 'd/m/Y'), array('min' => 'La fecha debe ser posterior a %min%.'));

		$this->validatorSchema->setPostValidator(new sfValidatorAnd(array(
		new DiaDeJuegoValidator(array('sector' => 'sector', 'fecha' => 'fecha_inicio'), array('invalid' => '')),
		new ElementosDeArrayNoRepetidosValidator(array('campos' => $this->getNombresDeCamposDeEquipo()), array('invalid' => 'Hay equipos repetidos.')),
		new AtributoValidoValidator(array('clase' => 'Equipo', 'campos' => $this->getNombresDeCamposDeEquipo(), 'atributos' => array('sector', 'letra', 'categoria')), array('invalid' => '%atributo% invalido.')),
		$this->validatorSchema->getPostValidator()
		)));
	}

	private function getNombresDeCamposDeEquipo(){
		$equipos_array = array();
		for ($i = 1; $i <= Torneo::CANTIDAD_DE_EQUIPOS; $i++){
			$equipos_array[] = sprintf('equipo%d_id', $i);
		}
		return $equipos_array;
	}
}
